/**
 * Point
 *
 */
if(typeof (module) !="undefined"){
    module.exports = Point;
}



// 屏幕坐标中的点，用像素为单位
function Point() 
{
    this.x=0;
    this.y=0;
    this.type=Point.prototype.POD_TT_PRIM_LINE;
}
/**
 * 点的类型
 */
Point.prototype.POD_TT_PRIM_NONE        = 0;
Point.prototype.POD_TT_PRIM_LINE        = 1;
Point.prototype.POD_TT_PRIM_QSPLINE     = 2;
Point.prototype.POD_TT_PRIM_CSPLINE     = 3;
Point.prototype.POD_TT_PRIM_MOVE        = 8;
Point.prototype.POD_TT_PRIM_CLOSE       = 9;

// JSON.stringify会回调此函数
Point.prototype.toJSON = function(){
    return [(this.x*1).toFixed(1),(this.y*1).toFixed(1),(this.type*1).toFixed(0)];
}

// point to array
// point:"11,12,13"
Point.prototype.toArray = function (){
    return '['+(this.x*1).toFixed(1)+','+ (this.y*1).toFixed(1)+','+(this.type*1).toFixed(0)+']';
}
/**
 * 从数组中解析点
 * @param arr : 数组类型，存放x y t
 */
Point.prototype.fromArray = function(arr){
    this.x = arr[0]*1;
    this.y = arr[1]*1;
    this.type = arr[2]*1;
}


// 与矩阵相乘
// 参数： 	
//			matrix：矩阵
Point.prototype.multiplyMatrix = function(matrix){
    if(!matrix)	return;

    var tX = matrix.m[0][0]*this.x+matrix.m[1][0]*this.y+matrix.m[2][0];
    var tY = matrix.m[0][1]*this.x+matrix.m[1][1]*this.y+matrix.m[2][1];
    this.x = tX;
    this.y = tY;
}
